home *** CD-ROM | disk | FTP | other *** search
- /* Diese Routine richtet das erforderliche Sprung-Array
- * fürs Knuth-Morris-Pratt-Verfahren ein
- */
- long NextArray[50]; /* Falls nötig, größer dimensionieren */
-
- void InitNextArray(char *pattern)
- {
- long i,j, M=strlen(pattern);
-
- NextArray[0]=-1;
-
- for( i=0, j=-1; i<M; i++,j++,NextArray[i]=
- (pattern[i]==pattern[j])? NextArray[j]:j )
- while( (j>=0) && (pattern[i] != pattern[j] ) )
- j=NextArray[j];
- }
-